[C] Decimal -> Binario

Publicado por Enzo de Brito Ferber 05/04/2006

[ Hits: 7.702 ]

Homepage: http://www.maximasonorizacao.com.br

Download binario.c




Programa que converte numeros decimais em binario usando operadores bit-bit padrões do C.
Muito bom para se entender operadores bit-bit e conversao de numeros...

  



Esconder código-fonte

/*
 * Programa: Binário
 * Arquivo: binario.c
 * Autor: Enzo Ferber 'Slackware_10'
 */
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define FLUSH __fpurge(stdin); //fflush(stdin) em sistemas windows

int converter(int num){
    printf("%d", (num & 0x80) / 0x80); //bit 7
    printf("%d", (num & 0x40) / 0x40); //bit 6
    printf("%d", (num & 0x20) / 0x20); //bit 5
    printf("%d", (num & 0x10) / 0x10); //bit 4
    printf("%d", (num & 0x08) / 0x08); //bit 3
    printf("%d", (num & 0x04) / 0x04); //bit 2
    printf("%d", (num & 0x02) / 0x02); //bit 1
    printf("%d", (num & 0x01) / 0x01); //bit 0
    /* Quando ha uma coversao decimal->binario, o bit 7 vem em 
     * primeiro lugar, e o 0 em ultimo.
     * Exemplo: Converter 65 (A) em binario
     * 65 | 2 (resto 1) bit 0
     * 32 | 2 (resto 0) bit 1
     * 16 | 2 (resto 0) bit 2
     * ...
     * Depois se inverte os bits:
     * B = bit
     * B7 B6 B5 B4 B3 B2 B1 B0 
     */
}

int main(void){
    int num;
    while(1){
        system("clear"); //cls em sistemas windows
        printf("Numero a converter: ");
        FLUSH
        scanf("%d", &num);
        if(num == -1) break; //garante um loop nao infinito
        converter(num);
        FLUSH
        getchar();
    }
    return 0;
}

Scripts recomendados

Gerador de numeros da mega-sena tabajara

Calculadora

Checkcred - Checagem de créditos.

Simples gerador de números primos

Programa para cálculo de números complexos


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts